const { defineConfig } = require("@vue/cli-service");
const path = require("path");
const isDevelopment = process.env.NODE_ENV !== "production";
const dayjs = require('dayjs');
let today = dayjs().format('YYYYMMDD');
let version = process.env.VUE_APP_VERSION = require('./package.json').version

console.log(today, process.env.NODE_ENV, process.env.VUE_APP_VERSION)

module.exports = defineConfig({

  lintOnSave: false,
  publicPath: "./", //配置静态资源
  outputDir: `${isDevelopment ? 'dist' : `/mes_deploy/mes-device/mes-device-ui-${version}.${today}/vhtml`}`,
  transpileDependencies: true,
  configureWebpack: {
    resolve: {
      alias: {
        '@': path.join(__dirname, './src'),

      }
    }
  },
  devServer: {
    open: false, //配置自动启动浏览器
    host: "localhost",
    https: false,
    // hotOnly: false, //热更新
    port: 5000,
    // 配置跨域-请求后端的接口
    proxy: {
      "/api": {
        target: "http://192.168.1.221:8081", //对应自己的接口
        changeOrigin: true,
        ws: true,
        pathRewrite: {
          "^/api": "",
        },
      },
    },
  },

  pluginOptions: {
    electronBuilder: {


      // electron配置
      builderOptions: {
        productName: 'mes-device',
        directories: {
          output: `/mes_deploy/mes-device/mes-device-ui-${version}.${today}/electron`
        },
        mac: {
          icon: './public/favicon.ico',
        },
        linux: {
          icon: './public/favicon.ico',
        },
        win: {
          icon: './public/favicon.ico',
          // 先新增个 win
          target: "nsis", // 使用这种打包方式
        },
        nsis: {
          oneClick: false, // 一键安装置为 false , 避免刚才的一件安装
          allowToChangeInstallationDirectory: true, // 自定义安装置为 false , 避免刚才的一件安装
          uninstallerIcon: './public/favicon.ico',
          installerHeaderIcon: './public/favicon.ico',
        },
        publish: [
          {
            provider: "generic", // 服务器提供商 也可以是GitHub等等  通用（任何HTTP（S）服务器）选项 必须是generic
            url: "http://127.0.0.1:8081", // 服务器地址
          },
        ],
      },
      nodeIntegration: true, // 如果要使用渲染进程要使用主进程的方法要配置 node 的这个方法
    },
  },
 
});
